package com.imooc.pan.server.modules.user.service;

import com.imooc.pan.server.modules.user.context.*;
import com.imooc.pan.server.modules.user.entity.RPanUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.imooc.pan.server.modules.user.vo.UserInfoVo;

/**
* @author 黄怀镔
* @description 针对表【r_pan_user(用户信息表)】的数据库操作Service
* @createDate 2024-06-06 22:43:07
*/
public interface RPanUserService extends IService<RPanUser> {

    /**
     * 用户注册
     * @param userRegisterContext
     * @return
     */
    Long register(UserRegisterContext userRegisterContext);


    /**
     * 用户登录
     * @param userLoginContext
     * @return
     */
    String login(UserLoginContext userLoginContext);

    /**
     * 用户退出登录
     * @param userId
     */
    public void exit(Long userId);


    /**
     * 用户忘记密码-校验用户名
     * @param checkUserNameContext
     * @return
     */
    String checkUserName(CheckUserNameContext checkUserNameContext);

    /**
     * 用户忘记密码-校验密保答案
     * @param checkAnswerContext
     * @return
     */
    String checkAnswer(CheckAnswerContext checkAnswerContext);

    /**
     * 用户忘记密码-修改密码
     * @param resetPasswordContext
     * @return
     */
    void resetPassword(ResetPasswordContext resetPasswordContext);

    /**
     * 修改密码
     * @param changePasswordContext
     */
    void changePassword(ChangePasswordContext changePasswordContext);

    /**
     * 查询用户基本信息
     * @param userId
     * @return
     */
    UserInfoVo info(Long userId);
}
